﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QuanLyBanHang.DAL;
using QuanLyBanHang.OBJECT;

namespace QuanLyBanHang
{
    public partial class frmKhoHang : Form
    {
        public frmKhoHang()
        {
            InitializeComponent();
        }

        int Action;

        private void frmKhoHang_Load(object sender, EventArgs e)
        {
            LoadData();
            EnabledButtonTextbox(false, false);
            DgvClick();
        }

        private void LoadData()
        {
            DataTable dt = DalKhoHang.LoadWareHouse();
            BindingSource bs = new BindingSource();
            bs.DataSource = dt;
            dgvKho.DataSource = bs;
        }

        private void EnabledButtonTextbox(bool vl1, bool vl2)
        {
            txtMaKho.Enabled = vl2;
            txtTenKho.Enabled = vl1;
            btnLuu.Visible = vl1;
            btnHuy.Visible = vl1;
        }
        private void DgvClick()
        {
            txtMaKho.Text = dgvKho.CurrentRow.Cells[0].Value.ToString();
            txtTenKho.Text = dgvKho.CurrentRow.Cells[1].Value.ToString();
        }

        private void dgvKho_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            DgvClick();
            EnabledButtonTextbox(false, false);
        }

        private void btnLuu_Click(object sender, EventArgs e)
        {
            if (Action == 1)
            {
                ObjKhoHang obj = new ObjKhoHang();
                obj.Ten = txtTenKho.Text;
                int thucthi = DalKhoHang.Insert(obj);
                if (thucthi > 0)
                {
                    MessageBox.Show("Kho: " + obj.Ten.ToUpper() + " đã được thêm vào CSDL thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    LoadData();
                    DgvClick();
                    EnabledButtonTextbox(false, false);
                }
                else
                    MessageBox.Show("Kho: " + obj.Ten.ToUpper() + " chưa được thêm vào CSDL", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                ObjKhoHang obj = new ObjKhoHang();
                obj.Ma = txtMaKho.Text;
                obj.Ten = txtTenKho.Text;
                int thucthi = DalKhoHang.Update(obj);
                if (thucthi > 0)
                {
                    MessageBox.Show("Kho: " + obj.Ten.ToUpper() + " đã được sửa thông tin thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    LoadData();
                    DgvClick();
                    EnabledButtonTextbox(false, false);
                }
                else
                    MessageBox.Show("Kho: " + obj.Ten.ToUpper() + " chưa được sửa", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            EnabledButtonTextbox(false, false);
            DgvClick();
        }

        private void thêmToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Action = 1;
            txtMaKho.Text = "";
            txtTenKho.Text = "";
            EnabledButtonTextbox(true, false);
            txtTenKho.Focus();
        }

        private void sửaHàngHóaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Action = 2;
            EnabledButtonTextbox(true, false);
            txtTenKho.Focus();
        }

        private void hủyThaoTácToolStripMenuItem_Click(object sender, EventArgs e)
        {
            btnHuy_Click(sender, e);
        }

        private void dgvKho_SelectionChanged(object sender, EventArgs e)
        {
            DgvClick();
        }

        protected override bool ProcessDialogKey(Keys keyData)
        {
            if (keyData == Keys.Escape)
            {
                this.Close();
                return base.ProcessDialogKey(keyData);
            }
            else
                return false;
        }

    }
}
